1) Field of the Invention
The present invention relates to a method and an apparatus suitably used for circuit designing of a LSI, which has become larger in its size and more complex following an advance in a micro fabrication art in recent years.
2) Description of the Related Art
Generally, LSI designing is performed based on a procedure shown in FIG. 14. This procedure includes steps as follows. First, logical designing is performed for a circuit (LSI) to be designed (step S1), then cells (circuit elements) are arranged based on the result of this logical designing (step S2) and a timing is checked for the result of this arrangement (step S3).
For a timing check, a delay value is calculated for each path while performing path tracing for the arranging result of the cells, and determination is made as to whether this value satisfies a timing condition or not. At this time, however, wiring has not beer decided yet among the cells. Thus, a delay value for each path is calculated by estimating a delay value which arises because of wiring (net) among the cells by using a Manhattan distance, and so on.
If the result of the timing check shows that there is an error path which does not satisfy the timing condition, arranging of the cells is performed again (from NO route of step S4 to step S2). This rearranging of the cells (improvement of the arrangement) is repeated until the error path is canceled (until YES determination is made in step S4).
If the result of the cell arrangement satisfies the timing condition (YES determination is made in step S4), wiring is performed among the cells which have been arranged in step S2 (step S5), and a timing check similar to that described above is also performed for this wiring result (step S6).
For this timing check, a delay value for each path is calculated based on an actual wiring length by performing path tracing for the wiring result among the cells, and determination is made as to whether the value satisfies the timing condition or not.
If the result of the timing check shows that there is an error path which does not satisfy the timing condition, wiring among the cells is performed again (from NO route of step S7 to step S5). This rewiring (improvement of the wiring) is repeated until the error path is canceled (until YES determination is made in step S7). If the result of the cell arrangement satisfies the timing condition (YES determination is made in step S7), designing is finished.
On the other hand, if the timing condition is not satisfied even by the repeated rearranging or rewiring operation (no YES determination is made in step S4 or S7), the process returns to step S1. Then, the process is started all over again from logical designing.
With an advance in a micro fabrication art in recent years, a LSI has become extremely large in its circuit size and complex. For this complicated circuit, a data timing problem must be solved among flip-flops (sequential circuit cells; referred to as FFs, hereinafter), which amount to a million and several hundred thousands in number.
Therefore, simple arranging of the cells or wiring among the cells without any indices is liable to lead to the occurrence of error paths. It is thus preferred that arranging or wiring should be efficiently performed by using. Certain indices for arranging or wiring so as to limit the generation of error paths as much as possible. For the improvement of arranging or wiring, it is also preferred that error paths are not simply improved, but rather these paths should be efficiently canceled (corrected) by using certain indices for improvements.
If logical designing is automatically performed based on logical synthesis while a circuit has become extremely large in its size and complexity, the number of gate stages among FFs may increase more than that expected by a designer. In this case, the designer recognizes a path (multi-stage path, and so on) having the unexpected number of gate stages among FFs as a critical path (path which is too short or too long) for the first time by a timing check (delay analysis), which is performed after arranging or wiring. However, even if the critical path is recognized at this time, it is difficult to cancel this critical path during rearranging or rewiring, and thus logical designing must be performed again. Consequently, a great increase occurs in the number of steps. Therefore, it is necessary to prevent the generation of unexpected multi-stage paths during logical designing.
Furthermore, during the correcting process of the arrangement or the wiring performed while the circuit size is large as described above, the degree of permissibility for changing the arrangement or the wiring becomes extremely small toward the end of packaging designing (including arranging, wiring, and so on), and accordingly it becomes difficult to make any changes. If an arrangement or wiring is changed for a spot which needs correction, other spots may be adversely affected, and in the worst case logical designing must be performed all over again. Consequently, a great increase may occur in the number of designing steps.